#ifndef COLOURED_H_
#define COLOURED_H_

#include <D3DX10.h>
#include <D3D10.h>

#include "geometry.h"

// Position - Coloured models

class Coloured {
public:
    Coloured();
    ~Coloured();

    bool InitialiseModels(ID3D10Device *device);
    void Cleanup();

    void Render(ID3D10Device *device);
    void SetShaderVars(D3DXMATRIX World, D3DXMATRIX View, D3DXMATRIX Projection);
private:

    // Shader fields
    ID3D10InputLayout *vertexLayout;
    ID3DX10Mesh *mesh;
    ID3D10Effect *effect;
    ID3D10EffectTechnique *effectTechnique;
    ID3D10EffectMatrixVariable *WorldVariable, *ProjectionVariable, *ViewVariable;

private:
    bool InitialiseGeometry(ID3D10Device *device);
    bool InitialiseShader(ID3D10Device *device);
    bool CreateInputLayout(ID3D10Device *device);
    void ObtainShaderVars();
};
#endif